<!DOCTYPE html>
<!-- < lang="en"> -->
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script>
    //     // 2. 浮点数 算数运算里面会有问题
    //     console.log(0.1 + 0.2); // 0.30000000000000004
    //     console.log(0.07 * 100); // 7.000000000000001
    //     // 3. 我们不能直接拿着浮点数来进行相比较 是否相等
    //     var num = 0.1 + 0.2;
    //     console.log(num == 0.3); // false
    // console.log(18 == '18');//true 
    // console.log(18 === '18');//比较类型和数值都一致才行

    // //短路运算。当有多个表达式（值）时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
    //     // 1. 用我们的布尔值参与的逻辑运算  true && false  == false 
    //     // 2. 不返回true or false.
    //     // 3. 逻辑与短路运算  如果表达式1 结果为真 则返回表达式2  如果表达式1为假 那么返回表达式1
    //     console.log(123 && 456); // 456
    //     console.log(0 && 456); //  0
    //     console.log(1 && 0); //  0
    //     console.log(0 && 1 + 2 && 456 * 56789); // 0
    //     console.log('' && 1 + 2 && 456 * 56789); // ''
    //     // 如果有空的或者否定的为假 其余是真的，为假的情况：  0  ''  null undefined  NaN
    //     // 4. 逻辑或短路运算  如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2
    //     console.log(123 || 456); // 123
    //     console.log(123 || 456 || 456 + 123); // 123
    //     console.log(0 || 456 || 456 + 123); // 456
    //     console.log(0||0);//0
    //     // 逻辑中断很重要 它会影响我们程序运行结果思密达
    //     var num = 0;
    //     console.log(123 || num++);
    //     console.log(num); // 0

        // 打印倒三角形案例
        var str = '';
        for (var i = 1; i <= 10; i++) { // 外层循环控制行数
            for (var j = i; j <= 10; j++) { // 里层循环打印的个数不一样  j = i
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);

        // 九九乘法表
        // 一共有9行，但是每行的个数不一样，因此需要用到双重 for 循环
        // 外层的 for 循环控制行数 i ，循环9次 ，可以打印 9 行  
        // 内层的 for 循环控制每行公式  j  
        // 核心算法：每一行 公式的个数正好和行数一致， j <= i;
        // 每行打印完毕，都需要重新换一行
        var str = '';
        for (var i = 1; i <= 9; i++) { // 外层循环控制行数
            for (var j = 1; j <= i; j++) { // 里层循环控制每一行的个数  j <= i
                // 1 × 2 = 2
                // str = str + '★';
                str += j + '×' + i + '=' + i * j + '\t';
            }
            str += '\n';
        }
        console.log(str);
</script>
<body>
    
</body>
</html>